home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Publication 10
/
Publication_10_1996_High-Tech_de_Side_B.d64
/
ms synthesizer
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
79 lines
10 poke 53281,0:print""chr$(14)
20 print "[147] manfred scherm music synthesizer"
100 print" [221] [221] [221] "
110 print" [221] [221] [221] "
120 print" [146]2 [146]3 [221] [146]5 [146]6 [146]7 [221] [146]9 [146]0 [221] [146]- [146]\ "
130 print" [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] [221] "
140 print" [209][221][215][221][197][221][210][221][212][221][217][221][213][221][201][221][207][221][208][221]@[221]*[221]^"
150 print"[211][208][193][195][197] select solo or polyphonic"
160 print"[198]1,[198]3,[198]5,[198]7 select octave"
170 print"[198]2,[198]4,[198]6,[198]8 select waveform"
175 print"[216] play song"
180 print"hang on, setting up frequency table..."
190 s=13*4096+1024:dimf(26):dimk(255)
200 fori=0to28:pokes+i,0:next
210 f1=7040:fori=1to26:f(27-i)=f1*5.8+30:f1=f1/2^(1/12):next
220 k$="q2w3er5t6y7ui9o0p@-*\^"
230 fori=1tolen(k$):k(asc(mid$(k$,i)))=i:next
240 print"[145] "
250 at=0:de=0:su=15:re=10:sr=su*16+re:ad=at*16+de:wv=16:w=0:m=1:oc=4:hb=256:z=0
260 fori=0to2:t=i*7:pokes+5+t,ad:pokes+6+t,sr
270 pokes+2+t,4000and255:pokes+3+t,4000/256:next
280 pokes+24,15
300 geta$:ifa$=""then300
310 fr=k(asc(a$)):iffr=zthen500
315 fr=f(fr)/m:t=v*7:cr=s+t+4
320 pokes+5+t,z:pokes+6+t,z
330 pokecr,8:pokecr,z
340 pokes+t,fr-hb*int(fr/hb)
350 pokes+1+t,fr/hb
360 pokes+5+t,ad:pokes+6+t,sr
370 pokecr,wv+1:fori=1to50*at:next
375 pokecr,wv
380 ifp=1thenv=v+1:ifv=3thenv=0
400 goto300
500 ifa$="[133]"thenm=1:oc=4:goto300
510 ifa$="[134]"thenm=2:oc=3:goto300
520 ifa$="[135]"thenm=4:oc=2:goto300
530 ifa$="[136]"thenm=8:oc=1:goto300
540 ifa$="[137]"thenw=0:wv=16:goto300
550 ifa$="[138]"thenw=1:wv=32:goto300
560 ifa$="[139]"thenw=2:wv=64:goto300
570 ifa$="[140]"thenw=3:wv=128:goto300
580 ifa$=" "thenp=1-p:goto300
585 ifa$="x"then10000
590 ifa$="[147]"then200
600 goto300
800 print"hit a key"
810 geta$:ifa$=""then810:wait for a key
820 printa$:return
9000 data40,17,15,17,13,17,12,17,10,17,8,17,6,17,15,13,15,15,13,15,12
9005 data15,10,15,8,15,6,15,5,15,13,12,13,13,12,13,10,13,8,13,6,13,5,13,4,13
9006 data12,10,12,12
9010 data10,12,9,12,7,12,5,12,3,12,1,12
9020 data10,8,10,0
9600 data40,12,8,10,12,15,13,13,17,15,15,20
9610 data19,20,15,12,8,10,12,13,15,17,15,13,12,10,12,8,7,8,10,3
9620 data7,10,13,12,10
9630 data12,8,10,12,15,13,13,17,15,15,20
9640 data19,20,15,12,8,10,12
9650 data5,15,13,12,10,8,3,8,7,8,12,15,20,15,12,8
9660 data12,15,18,15,12,8,12,15,17,13,10
9670 data7,10,13,15,12,8,5,8,12,13,10,7,3,7,10,13,12,10
9680 data8,12,15,20,0
9999 data -1,-1
10000 readte
10005 reada:ifa=zthen300
10010 ifa=-1thenrestore:goto10000
10015 fr=f(a)/m:t=v*7:cr=s+t+4
10020 pokes+5+t,z:pokes+6+t,z
10030 pokecr,8:pokecr,z
10040 pokes+t,fr-hb*int(fr/hb)
10050 pokes+1+t,fr/hb
10060 pokes+5+t,ad:pokes+6+t,sr
10070 pokecr,wv+1:fori=1to50*at:next
10075 pokecr,wv
10080 ifp=1thenv=v+1:ifv=3thenv=0
10090 fori=1tote:next
10100 goto10005